package ase.eleitweg.server.db;

import ase.eleitweg.common.*;
import java.util.List;

public interface WorkflowDAO {

	public void createWorkflow(Workflow w);
	public void createEdge(Edge e);
	public void createNode(Node n);
	public void createInstance(Run i);
	
	public void deleteWorkflow(Workflow w);
	public void deleteEdge(Edge e);
	public void deleteNode(Node n);
	public void deleteInstance(Run i);
	
	public void updateWorkflow(Workflow w);
	public void updateEdge(Edge e);
	public void updateNode(Node n);
	public void updateInstance(Run i);
	
	public Workflow getWorkflow(int wnr);
	public List<Workflow> getAllWorkflows();
	
	public Edge getEdge(int anr);
	
	public Node getNode(int wnr, int anr);
	public Node getAllNodes(int wnr);
	
	public List<Run> getInstances(int wnr);
	public List<Run> getInstances(int wnr, int anr);
	public List<Run> getInstances(int wnr, int anr, int unr);
	public List<Run> getInstances();
	
	public List<Document> getDocuments(int runId);
}
